.layout {
    min-height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
}

.layout .header {
    box-shadow: 1px 1px 4px #9aa0b9;
    display: flex;
    align-items: center;
    -webkit-transition: width, 0.3s;
    transition: width, 0.3s;
    position: relative;
}

.layout.fixed-sidebar {
    height: 100%;
}

.layout.fixed-sidebar .sidebar {
    height: 100%;
    overflow-y: auto;
    /* 层级高于darkmode，避免被darkmode改色 */
    z-index: 10001;
}

.layout.fixed-header .header {
    width: 100%;
    z-index: 2;
}

.layout.fixed-sidebar .sidebar~.layout {
    overflow: auto;
}

.layout.fixed-header.fixed-sidebar .sidebar.collapsed~.layout .header {
    /* width: calc(100% - 75px); */
    width: 100%;
}

.layout.has-sidebar {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
}

.layout .content {
    padding: 15px;
    flex-direction: column;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
}

.layout .footer {
    height: 64px;
    min-height: 64px;
    text-align: center;
    margin-top: auto;
    margin-bottom: 15px;
    padding: 15px;
}

.layout .overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /* 手机屏幕开启菜单后，空白区域的遮盖颜色 */
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 99;
    display: none;
}

.layout .sidebar {
    color: #b3b8d4;
    background-color: #0c1e35;
    overflow-x: hidden !important;
    position: relative;
    width: 210px;
    min-width: 210px;
    -webkit-transition: width, left, right, 0.3s;
    transition: width, left, right, 0.3s;
}

.sidebar .image-wrapper {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.2;
    z-index: 1;
    display: none;
}

.sidebar .image-wrapper>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.sidebar.has-bg-image .image-wrapper {
    display: block;
}

.sidebar .sidebar-layout {
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2;
}

.sidebar .sidebar-layout .sidebar-header {
    height: 64px;
    min-height: 64px;
    display: flex;
    align-items: center;
    padding: 0 15px;
    border-bottom: 1px solid rgba(83, 93, 125, 0.3);
}

.sidebar .sidebar-layout .sidebar-header>span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.sidebar .sidebar-layout .sidebar-content {
    flex-grow: 1;
    padding: 10px 0;
}

.sidebar .sidebar-layout .sidebar-footer {
    height: 64px;
    min-height: 64px;
    display: flex;
    align-items: center;
    border-top: 1px solid rgba(83, 93, 125, 0.3);
    padding: 0 15px;
}

.sidebar .sidebar-layout .sidebar-footer>span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

@keyframes swing {

    0%,
    30%,
    50%,
    70%,
    100% {
        transform: rotate(0deg);
    }

    10% {
        transform: rotate(10deg);
    }

    40% {
        transform: rotate(-10deg);
    }

    60% {
        transform: rotate(5deg);
    }

    80% {
        transform: rotate(-5deg);
    }
}

.layout .sidebar .menu ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.layout .sidebar .menu .menu-item a {
    display: flex;
    align-items: center;
    height: 50px;
    padding: 0 15px;
    color: #b3b8d4;
}

.layout .sidebar .menu .menu-item a .menu-icon {
    font-size: 1.2rem;
    width: 35px;
    min-width: 35px;
    height: 35px;
    line-height: 35px;
    text-align: center;
    display: inline-block;
    margin-right: 10px;
    border-radius: 2px;
    transition: color 0.3s;
}

.layout .sidebar .menu .menu-item a .menu-icon i {
    display: inline-block;
}

.layout .sidebar .menu .menu-item a .menu-title {
    font-size: 0.9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-grow: 1;
    transition: color 0.3s;
}

.layout .sidebar .menu .menu-item a .menu-prefix,
.layout .sidebar .menu .menu-item a .menu-suffix {
    display: inline-block;
    padding: 5px;
    opacity: 1;
    transition: opacity 0.3s;
}

.layout .sidebar .menu .menu-item a:hover .menu-title {
    color: #dee2ec;
}

.layout .sidebar .menu .menu-item a:hover .menu-icon {
    color: #dee2ec;
}

.layout .sidebar .menu .menu-item a:hover .menu-icon i {
    animation: swing ease-in-out 0.5s 1 alternate;
}

.layout .sidebar .menu .menu-item a:hover::after {
    border-color: #dee2ec !important;
}

.layout .sidebar .menu .menu-item.sub-menu {
    position: relative;
}

.layout .sidebar .menu .menu-item.sub-menu>a::after {
    content: "";
    transition: transform 0.3s;
    border-right: 2px solid currentcolor;
    border-bottom: 2px solid currentcolor;
    width: 5px;
    height: 5px;
    transform: rotate(-45deg);
}

.layout .sidebar .menu .menu-item.sub-menu>.sub-menu-list {
    padding-left: 30px;
    display: none;
    overflow: hidden;
    z-index: 101;
}

.layout .sidebar .menu .menu-item.sub-menu.open>a::after {
    transform: rotate(45deg);
}

.layout .sidebar .menu .menu-item.active>a {
    color: #009688;
}

.layout .sidebar .menu .menu-item.active>a::after {
    border-color: #dee2ec;
}

.layout .sidebar .menu>ul>.sub-menu>.sub-menu-list {
    background-color: #0b1a2c;
}

.layout .sidebar .menu.icon-shape-circle .menu-item a .menu-icon,
.layout .sidebar .menu.icon-shape-rounded .menu-item a .menu-icon,
.layout .sidebar .menu.icon-shape-square .menu-item a .menu-icon {
    background-color: #0b1a2c;
}

.layout .sidebar .menu.icon-shape-circle .menu-item a .menu-icon {
    border-radius: 50%;
}

.layout .sidebar .menu.icon-shape-rounded .menu-item a .menu-icon {
    border-radius: 4px;
}

.layout .sidebar .menu.icon-shape-square .menu-item a .menu-icon {
    border-radius: 0;
}

.layout .sidebar:not(.collapsed) .menu>ul>.menu-item.sub-menu>.sub-menu-list {
    visibility: visible !important;
    position: static !important;
    transform: translate(0, 0) !important;
}

.layout .sidebar.collapsed {
    width: 75px;
    min-width: 75px;
}

.layout .sidebar.collapsed .menu>ul>.menu-item>a .menu-prefix,
.layout .sidebar.collapsed .menu>ul>.menu-item>a .menu-suffix {
    opacity: 0;
}

.layout .sidebar.collapsed .menu>ul>.menu-item.sub-menu>a::after {
    content: "";
    width: 5px;
    height: 5px;
    background-color: currentcolor;
    border-radius: 50%;
    display: inline-block;
    position: absolute;
    right: 10px;
    top: 50%;
    border: none;
    transform: translateY(-50%);
}

.layout .sidebar.collapsed .menu>ul>.menu-item.sub-menu>a:hover::after {
    background-color: #dee2ec;
}

.layout .sidebar.collapsed .menu>ul>.menu-item.sub-menu>.sub-menu-list {
    transition: none !important;
    width: 200px;
    margin-left: 3px !important;
    border-radius: 4px;
    display: block !important;
}

.layout .sidebar.collapsed .menu>ul>.menu-item.active>a::after {
    background-color: #dee2ec;
}

.layout .sidebar.has-bg-image .menu.icon-shape-circle .menu-item a .menu-icon,
.layout .sidebar.has-bg-image .menu.icon-shape-rounded .menu-item a .menu-icon,
.layout .sidebar.has-bg-image .menu.icon-shape-square .menu-item a .menu-icon {
    background-color: rgba(11, 26, 44, 0.6);
}

.layout .sidebar.has-bg-image:not(.collapsed) .menu>ul>.sub-menu>.sub-menu-list {
    background-color: rgba(0, 0, 0, 0.6);
}

/* ================================== 菜单响应式杨式======================= */
@media (max-width: 480px) {
    .layout .sidebar.break-point-xs {
        position: fixed;
        left: -210px;
        height: 100%;
        top: 0;
    }

    .layout .sidebar.break-point-xs.collapsed {
        left: -80px;
    }

    .layout .sidebar.break-point-xs.toggled {
        left: 0;
    }

    .layout .sidebar.break-point-xs.toggled~.overlay {
        display: block;
    }

    .layout .sidebar.break-point-xs~.layout .header {
        width: 100% !important;
        -webkit-transition: none;
        transition: none;
    }
}

@media (max-width: 576px) {
    .layout .sidebar.break-point-sm {
        position: fixed;
        left: -210px;
        height: 100%;
        top: 0;
    }

    .layout .sidebar.break-point-sm.collapsed {
        left: -80px;
    }

    .layout .sidebar.break-point-sm.toggled {
        left: 0;
    }

    .layout .sidebar.break-point-sm.toggled~.overlay {
        display: block;
    }

    .layout .sidebar.break-point-sm~.layout .header {
        width: 100% !important;
        -webkit-transition: none;
        transition: none;
    }
}

@media (max-width: 768px) {
    .layout .sidebar.break-point-md {
        position: fixed;
        left: -210px;
        height: 100%;
        top: 0;
    }

    .layout .sidebar.break-point-md.collapsed {
        left: -80px;
    }

    .layout .sidebar.break-point-md.toggled {
        left: 0;
    }

    .layout .sidebar.break-point-md.toggled~.overlay {
        display: block;
    }

    .layout .sidebar.break-point-md~.layout .header {
        width: 100% !important;
        -webkit-transition: none;
        transition: none;
    }
}

@media (max-width: 992px) {
    .layout .sidebar.break-point-lg {
        position: fixed;
        left: -210px;
        height: 100%;
        top: 0;
    }

    .layout .sidebar.break-point-lg.collapsed {
        left: -80px;
    }

    .layout .sidebar.break-point-lg.toggled {
        left: 0;
    }

    .layout .sidebar.break-point-lg.toggled~.overlay {
        display: block;
    }

    .layout .sidebar.break-point-lg~.layout .header {
        width: 100% !important;
        -webkit-transition: none;
        transition: none;
    }
}

@media (max-width: 1200px) {
    .layout .sidebar.break-point-xl {
        position: fixed;
        left: -210px;
        height: 100%;
        top: 0;
    }

    .layout .sidebar.break-point-xl.collapsed {
        left: -80px;
    }

    .layout .sidebar.break-point-xl.toggled {
        left: 0;
    }

    .layout .sidebar.break-point-xl.toggled~.overlay {
        display: block;
    }

    .layout .sidebar.break-point-xl~.layout .header {
        width: 100% !important;
        -webkit-transition: none;
        transition: none;
    }
}

@media (max-width: 1600px) {
    .layout .sidebar.break-point-xxl {
        position: fixed;
        left: -210px;
        height: 100%;
        top: 0;
    }

    .layout .sidebar.break-point-xxl.collapsed {
        left: -80px;
    }

    .layout .sidebar.break-point-xxl.toggled {
        left: 0;
    }

    .layout .sidebar.break-point-xxl.toggled~.overlay {
        display: block;
    }

    .layout .sidebar.break-point-xxl~.layout .header {
        width: 100% !important;
        -webkit-transition: none;
        transition: none;
    }
}

/* ================================== 手机端菜单开关按钮 ======================= */
.layout .sidebar-toggler {
    display: none;
}

@media (max-width: 480px) {
    .layout .sidebar-toggler.break-point-xs {
        display: initial;
    }
}

@media (max-width: 576px) {
    .layout .sidebar-toggler.break-point-sm {
        display: initial;
    }
}

@media (max-width: 768px) {
    .layout .sidebar-toggler.break-point-md {
        display: initial;
    }
}

@media (max-width: 992px) {
    .layout .sidebar-toggler.break-point-lg {
        display: initial;
    }
}

@media (max-width: 1200px) {
    .layout .sidebar-toggler.break-point-xl {
        display: initial;
    }
}

@media (max-width: 1600px) {
    .layout .sidebar-toggler.break-point-xxl {
        display: initial;
    }
}


/* layout rtl  菜单在屏幕右侧 */
.layout.rtl {
    direction: rtl;
}

.layout.rtl .header {
    box-shadow: -1px 1px 4px #9aa0b9;
}

.layout.rtl .sidebar .menu .menu-item a .menu-icon {
    margin-left: 10px;
    margin-right: 0;
}

.layout.rtl .sidebar .menu .menu-item.sub-menu>a::after {
    transform: rotate(135deg);
}

.layout.rtl .sidebar .menu .menu-item.sub-menu>.sub-menu-list {
    padding-left: 0;
    padding-right: 15px;
}

.layout.rtl .sidebar .menu .menu-item.sub-menu.open>a::after {
    transform: rotate(45deg);
}

.layout.rtl .sidebar.collapsed .menu>ul>.menu-item.sub-menu a::after {
    right: auto;
    left: 10px;
}

.layout.rtl .sidebar.collapsed .menu>ul>.menu-item.sub-menu>.sub-menu-list {
    margin-left: -3px !important;
}


@media (max-width: 480px) {
    .layout.rtl .sidebar.break-point-xs {
        left: auto;
        right: -210px;
    }

    .layout.rtl .sidebar.break-point-xs.collapsed {
        left: auto;
        right: -80px;
    }

    .layout.rtl .sidebar.break-point-xs.toggled {
        left: auto;
        right: 0;
    }
}

@media (max-width: 576px) {
    .layout.rtl .sidebar.break-point-sm {
        left: auto;
        right: -210px;
    }

    .layout.rtl .sidebar.break-point-sm.collapsed {
        left: auto;
        right: -80px;
    }

    .layout.rtl .sidebar.break-point-sm.toggled {
        left: auto;
        right: 0;
    }
}

@media (max-width: 768px) {
    .layout.rtl .sidebar.break-point-md {
        left: auto;
        right: -210px;
    }

    .layout.rtl .sidebar.break-point-md.collapsed {
        left: auto;
        right: -80px;
    }

    .layout.rtl .sidebar.break-point-md.toggled {
        left: auto;
        right: 0;
    }
}

@media (max-width: 992px) {
    .layout.rtl .sidebar.break-point-lg {
        left: auto;
        right: -210px;
    }

    .layout.rtl .sidebar.break-point-lg.collapsed {
        left: auto;
        right: -80px;
    }

    .layout.rtl .sidebar.break-point-lg.toggled {
        left: auto;
        right: 0;
    }
}

@media (max-width: 1200px) {
    .layout.rtl .sidebar.break-point-xl {
        left: auto;
        right: -210px;
    }

    .layout.rtl .sidebar.break-point-xl.collapsed {
        left: auto;
        right: -80px;
    }

    .layout.rtl .sidebar.break-point-xl.toggled {
        left: auto;
        right: 0;
    }
}

@media (max-width: 1600px) {
    .layout.rtl .sidebar.break-point-xxl {
        left: auto;
        right: -210px;
    }

    .layout.rtl .sidebar.break-point-xxl.collapsed {
        left: auto;
        right: -80px;
    }

    .layout.rtl .sidebar.break-point-xxl.toggled {
        left: auto;
        right: 0;
    }
}


/* 其它 */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    /* height: 100vh; */
    color: #212529;
}

a {
    text-decoration: none !important;
}

@media (max-width: 992px) {
    #btn-collapse {
        display: none;
    }
}